class animal(object):
    def run(self):
        print('animal is runing!')


class dog(animal):
    def run(self):
        print("dog is runing")

class cat(animal):
    def run(self):
        print('cat is runing')

class car(animal):
    def run(self):
        print('car run fast')

dog().run()

cat().run()

car().run()

#多态
def run_twice(animal):
    animal.run()
    animal.run()


run_twice(dog())
run_twice(cat())
run_twice(car())

# 对于静态语言（例如Java）来说，如果需要传入Animal类型，
# 则传入的对象必须是Animal类型或者它的子类，否则，将无法调用run()方法。
# 对于Python这样的动态语言来说，则不一定需要传入Animal类型。我们只需要保证传入的对象有一个run()方法就可以了



